GdkColormap *colormap;
gtk_widget_set_has_window (GTK_WIDGET (invisible), TRUE);
- GTK_WIDGET_SET_FLAGS (invisible, GTK_TOPLEVEL);
+ _gtk_widget_set_is_toplevel (GTK_WIDGET (invisible), TRUE);
g_object_ref_sink (invisible);
return (GTK_OBJECT_FLAGS (widget) & GTK_TOPLEVEL) != 0;
}
+void
+_gtk_widget_set_is_toplevel (GtkWidget *widget,
+ gboolean is_toplevel)
+{
+ if (is_toplevel)
+ GTK_OBJECT_FLAGS (widget) |= GTK_TOPLEVEL;
+ else
+ GTK_OBJECT_FLAGS (widget) &= ~(GTK_TOPLEVEL);
+}
+
/**
* gtk_widget_is_drawable:
* @widget: a #GtkWidget
void _gtk_widget_set_has_grab (GtkWidget *widget,
gboolean has_grab);
+void _gtk_widget_set_is_toplevel (GtkWidget *widget,
+ gboolean is_toplevel);
+
void _gtk_widget_grab_notify (GtkWidget *widget,
gboolean was_grabbed);
window->type = GTK_WINDOW_TOPLEVEL;
- GTK_WIDGET_SET_FLAGS (embed_widget, GTK_TOPLEVEL);
+ _gtk_widget_set_is_toplevel (GTK_WIDGET (embed_widget), TRUE);
gtk_container_set_resize_mode (GTK_CONTAINER (embed_widget), GTK_RESIZE_QUEUE);
}
GtkWindowPrivate *priv = GTK_WINDOW_GET_PRIVATE (window);
gtk_widget_set_has_window (GTK_WIDGET (window), TRUE);
- GTK_WIDGET_SET_FLAGS (window, GTK_TOPLEVEL);
+ _gtk_widget_set_is_toplevel (GTK_WIDGET (window), TRUE);
GTK_PRIVATE_SET_FLAG (window, GTK_ANCHORED);
_gtk_window_set_is_toplevel (GtkWindow *window,
gboolean is_toplevel)
{
- if (gtk_widget_is_toplevel (GTK_WIDGET (window)))
+ GtkWidget *widget;
+
+ widget = GTK_WIDGET (window);
+
+ if (gtk_widget_is_toplevel (widget))
g_assert (g_slist_find (toplevel_list, window) != NULL);
else
g_assert (g_slist_find (toplevel_list, window) == NULL);
- if (is_toplevel == gtk_widget_is_toplevel (GTK_WIDGET (window)))
+ if (is_toplevel == gtk_widget_is_toplevel (widget))
return;
if (is_toplevel)
{
- GTK_WIDGET_SET_FLAGS (window, GTK_TOPLEVEL);
+ _gtk_widget_set_is_toplevel (widget, TRUE);
toplevel_list = g_slist_prepend (toplevel_list, window);
}
else
{
- GTK_WIDGET_UNSET_FLAGS (window, GTK_TOPLEVEL);
+ _gtk_widget_set_is_toplevel (widget, FALSE);
toplevel_list = g_slist_remove (toplevel_list, window);
}
}